From: verdre Date: Sat, 2 Feb 2019 16:50:04 +0000 (+0100) Subject: osdWindow: Use float values as input for osdWindow X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~839^2^2~106 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=cb0d28770ff2fc62a06a543c711cb0e24c81670a;p=gnome-shell.git osdWindow: Use float values as input for osdWindow Using the same type/interval as BarLevel means we can cut out the intermediate LevelBar class in a follow-up cleanup. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385 --- diff --git a/js/ui/osdWindow.js b/js/ui/osdWindow.js index 2d92d7cbb..9262f28d4 100644 --- a/js/ui/osdWindow.js +++ b/js/ui/osdWindow.js @@ -18,7 +18,7 @@ var LevelBar = class extends BarLevel.BarLevel { super(0, { styleClass: 'level' }); this._level = 0; - this._maxLevel = 100; + this._maxLevel = 1; this.actor.accessible_name = _("Volume"); @@ -32,7 +32,7 @@ var LevelBar = class extends BarLevel.BarLevel { set level(value) { this._level = Math.max(0, Math.min(value, this._maxLevel)); - this.value = this._level / 100; + this.value = this._level; } get maxLevel() { @@ -40,9 +40,9 @@ var LevelBar = class extends BarLevel.BarLevel { } set maxLevel(value) { - this._maxLevel = Math.max(100, value); + this._maxLevel = Math.max(1, value); - this.maximum_level = this._maxLevel / 100; + this.maximum_level = this._maxLevel; } }; @@ -152,7 +152,7 @@ var OsdWindow = class { } } - setMaxLevel(maxLevel = 100) { + setMaxLevel(maxLevel = 1) { this._level.maxLevel = maxLevel; } diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index e750c207f..a287a3fb6 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -94,6 +94,12 @@ var GnomeShell = class { if (serializedIcon) icon = Gio.Icon.new_for_string(serializedIcon); + // Translate from percentages in the D-Bus API to floats + if (!isNaN(level)) + level /= 100; + if (!isNaN(maxLevel)) + maxLevel /= 100; + Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel); } diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js index 03be7b96c..4f0270f9b 100644 --- a/js/ui/status/volume.js +++ b/js/ui/status/volume.js @@ -139,7 +139,7 @@ var StreamSlider = class { this._allowAmplified = this._soundSettings.get_boolean(ALLOW_AMPLIFIED_VOLUME_KEY); this._slider.maximum_level = this._allowAmplified - ? this.getMaxLevel() / 100 : 1; + ? this.getMaxLevel() : 1; if (this._stream) this._updateVolume(); @@ -173,7 +173,7 @@ var StreamSlider = class { if (!this._stream) return null; - return 100 * this._stream.volume / this._control.get_vol_max_norm(); + return this._stream.volume / this._control.get_vol_max_norm(); } getMaxLevel() { @@ -181,7 +181,7 @@ var StreamSlider = class { if (this._allowAmplified) maxVolume = this._control.get_vol_max_amplified(); - return 100 * maxVolume / this._control.get_vol_max_norm(); + return maxVolume / this._control.get_vol_max_norm(); } }; Signals.addSignalMethods(StreamSlider.prototype); @@ -363,8 +363,8 @@ var Indicator = class extends PanelMenu.SystemIndicator { return result; let gicon = new Gio.ThemedIcon({ name: this._volumeMenu.getIcon() }); - let level = parseInt(this._volumeMenu.getLevel()); - let maxLevel = parseInt(this._volumeMenu.getMaxLevel()); + let level = this._volumeMenu.getLevel(); + let maxLevel = this._volumeMenu.getMaxLevel(); Main.osdWindowManager.show(-1, gicon, null, level, maxLevel); return result; }